Cloud computing refers to the use of remote computing resources (hardware and/or software) that are delivered as a service over a network (typically, the Internet). It entrusts these remote services with a user's data, software, and/or computational needs. For wide-area connectivity, users can use either the Internet or carrier clouds (i.e., dedicated virtual private networks) to access these resources where their data and often software is stored via a web browser, a light-weight desktop, mobile application or programmatically using an Application Programming Interface (“API”) call. Cloud computing providers may offer their services according to several fundamental models, such as infrastructure as a service (“IaaS”), platform as a service (“PaaS”), and software as a service (“SaaS”). One attribute of cloud computing is a usage model in which customers consume resources as a service and pay only for what they use, rather than buying a license, maintenance contract, and/or renting dedicated resources on a periodic basis. Another attribute of cloud computing is a multi-tenancy approach to resource sharing: multiple customers or organizations (“tenants”) may share the same application, running on the same operating system, on the same hardware, with the same data-storage mechanism, and/or run different applications on different operating systems using virtual hardware but sharing the same physical hardware; in each case, however, they may not share or see each other's data. Often cloud computing resources are sold through resellers, with the cloud computing provider providing the reseller with the ability to bill its tenants or billing its tenants directly and providing the reseller with a percentage of the bills produced or collected.
Existing systems, however, provide little flexibility in the ability of the cloud computing provider or resellers of the cloud resources (each a ‘billing entity’) to customize, change, or otherwise modify their billing methods. A reseller may be able to configure preset parameters of billing, for example, if a parent billing entity has provided for such configuration; the reseller, however, may wish to bill for usage in a manner not provided or anticipated by a parent billing entity. A reseller may further wish to include additional products or services along with the cloud-based resources; existing systems do not allow for integrated billing of the entire product offered by the reseller. A need therefore exists for a customizable, flexible, and secure method for billing for cloud-based resources.